package cn.xeblog.plugin.game.chess;

import cn.xeblog.commons.entity.game.chess.ChessDTO;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * 棋子点位
 *
 * @author anlingyi
 * @date 2021/11/7 5:59 下午
 */
@ToString
@NoArgsConstructor
public class Point {
    /**
     * 横坐标
     */
    int x;
    /**
     * 纵坐标
     */
    int y;
    /**
     * 棋子类型 255.红 0.黑
     */
    boolean type;

    /**
     * 棋子索引
     */
    int index;

    /**
     * 选项
     */
    ChessDTO.Option option = ChessDTO.Option.DEFAULT;

    /**
     * 构造
     *
     * @param x     横坐标
     * @param y     纵坐标
     * @param type  棋子类型 红方.true 黑方.false
     * @param index 棋子索引
     */
    public Point(int x, int y, boolean type, int index) {
        this.x = x;
        this.y = y;
        this.type = type;
        this.index = index;
    }

    /**
     * 构造
     *
     * @param x      横坐标
     * @param y      纵坐标
     * @param type   棋子类型 红方.true 黑方.false
     * @param index  棋子索引
     * @param option 选项
     */
    public Point(int x, int y, boolean type, int index, ChessDTO.Option option) {
        this.x = x;
        this.y = y;
        this.type = type;
        this.index = index;
        this.option = option;
    }

    /**
     * 构造
     *
     * @param option 选项
     */
    public Point(ChessDTO.Option option) {
        this.option = option;
    }
}
